/*
 * @Description: 分页器声明
 * @Author: seadon
 * @LastEditors: seadon
 * @Date: 2021-03-30 15:47:30
 * @LastEditTime: 2021-05-12 10:50:56
 */
import { ComputedRef, VNodeChild } from 'vue'

interface PaginationRenderProps {
	page: number
	type: 'page' | 'prev' | 'next'
	originalElement: any
}

export interface PaginationProps {
	// 数据总数
	total?: number | ComputedRef
	// 默认页数
	defaultCurrent?: number
	// 当前页
	current?: number
	// 默认的每页条数
	defaultPageSize?: number
	// 每页条数
	pageSize?: number
	// 指定每页可以显示多少条
	pageSizeOptions?: string[]
	// 只有一页时是否隐藏分页器
	hideOnSinglePage?: boolean
	// 是否可以改变 pageSize
	showSizeChanger?: boolean
	// 是否可以快速跳转至某页
	showQuickJumper?: boolean | object
	// 用于显示数据总量和当前数据顺序
	showTotal?: (total: number, range: [number, number]) => any
	// 当为「small」时，是小尺寸分页
	size?: string
	// 当添加该属性时，显示为简单分页
	simple?: boolean
	// 用于自定义页码的结构，可用于优化 SEO
	itemRender?: (props: PaginationRenderProps) => VNodeChild | JSX.Element
}
